<template>

<van-icon
:color="attitude===-1?'#ffa500' : '#777'"
:name="attitude===1? 'good-job': 'good-job-o'"
@click="changeFollowed"
/>

</template>

<script>
/*
  目标5：文章收藏
  发现除了页面样式和接口以外，其他的业务逻辑与关注用户组件完全一致，那么尝试通过关注用户组件来对 文章收藏组件进行集成
  1. 复制完成后，将template模块内容进行替换
  2. 替换当前组件中具有实际意义的变量，在当前组件的全局进行统一替换
  3. 替换当前业务接口
  4. 通过状态变量对template模块组件进行动态切换操作
*/
import { addLikeAPI, deleteLikeAPI } from '@/api/index.js'
export default {
  name: 'CollectArticle',
  props: {
    attitude: { // 收藏文章状态
      type: Number,
      default: -1
    },
    artId: { // 收藏文章id
      type: String,
      default: ''
    }

  },
  data () {
    return {
      btnLoading: false // 关注按钮的架子状态
    }
  },

  methods: {
    // 改变关注作者状态
    async changeFollowed () {
      console.log(1111)
      // 触发改变状态时，开启加载状态
      //   判断btnLoading是否为true ，如果为true，禁止下一步执行接口操作
      if (this.btnLoading) return
      this.btnLoading = true
      try {
        if (this.attitude === 1) {
          // 已关注，取消关注
          await deleteLikeAPI(this.artId)
        } else {
          // 没有关注，添加关注
          await addLikeAPI(this.artId)
        }
        this.$emit('update:isCollected', this.attitude === 1 ? -1 : 1)
        this.$toast(!this.attitude !== 1 ? '文章收藏成功' : '取消收藏收藏')
      } catch (err) {
        this.$toast('操作失败')
        console.log(err)
      }
      // 整个逻辑代码执行完后关闭加载状态
      this.btnLoading = false
    }
  }
}
</script>

<style>

</style>
